package Controler.Cours;

import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import Model.Cours;
import Model.Lieu;
import Model.Listes;
import Controler.Fonctions;
import JDBC.Cours_Afficher;
import JDBC.Cours_Modifier;
import JDBC.Cours_SelectionLieu;

/**
 * Servlet implementation class ModificationCours
 */
@WebServlet("/Cours_ModifierController")
public class Cours_ModifierController extends HttpServlet 
{
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Cours_ModifierController() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
	{
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
	{
		String url = "Vues/VuesGrp3/VuesGrp3_Erreur/erreurModificationCours.jsp";
		HttpSession session = request.getSession();
		Listes listes = (Listes) session.getAttribute("listes");
		
		boolean dateValide=false;
		boolean heureValide=false;
		
		if(request.getParameter("out")!=null)
		{
			url = "Vues/VuesGrp3/vueGRP3_AfficheCours.jsp";
		}
		if(request.getParameter("out")==null)
		{
			int idModifie = Integer.parseInt(request.getParameter("idModif"));
			String date = request.getParameter("date");
			String heureDebut = request.getParameter("hd");
			String heureFin = request.getParameter("hf");
			
			if(Fonctions.verifierDate(date))
			{
				dateValide=true;
			}
			if(Fonctions.verifierHeure(heureDebut) && Fonctions.verifierHeure(heureFin))
			{
				if(Fonctions.comparerHeure(heureDebut,heureFin))
				{
					heureValide=true;
				}
			}
			
			if(dateValide && heureValide)
			{
				Cours c = new Cours();
				Lieu lieu=new Lieu();
				int idEleve=0;
				try
				{
					idEleve=Integer.parseInt(request.getParameter("eleve"));
					Cours_SelectionLieu coursSel=new Cours_SelectionLieu();
					int idLieuCours=coursSel.retournerLieu(idEleve);
					
					c.setIdCours(idModifie);
					c.setDateCours(date);
					c.setDuree(Integer.parseInt(request.getParameter("duree")));
					c.setHeureDebut(heureDebut);
					c.setHeureFin(heureFin);
					c.setId_Lieu(idLieuCours);
					c.setId_Eleve(idEleve);
					c.setId_Mat(Integer.parseInt(request.getParameter("matiere")));
					c.setId_Niv(Integer.parseInt(request.getParameter("niveau")));
					c.setId_Prof(Integer.parseInt(request.getParameter("professeur")));
					c.setFrequence(request.getParameter("frequence"));
					c.setCommentaire(request.getParameter("commentaire"));
					Cours_Modifier maj = new Cours_Modifier();
					maj.modifier(c);
					Cours_Afficher listeCours = new Cours_Afficher();
					ArrayList<Cours> mesCours = listeCours.afficherCours();
					listes.setMesCours(mesCours);
					session.setAttribute("listes", listes);
					url="Vues/VuesGrp3/vueGRP3_AfficheCours.jsp";
				}
				catch (Exception e)
				{
					url="Vues/VuesGrp3/VuesGrp3_Erreur/erreurModificationCours.jsp";
				}
			}
		}
		
		request.getRequestDispatcher(url).forward(request, response);
	}

}
